package cn.yuanqiao.archive.management.mapper;

import cn.yuanqiao.archive.management.domain.YqZpgz;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 组盘规则Mapper接口
 * 
 * @author sy
 * @date 2023-07-10
 */
public interface YqZpgzMapper 
{
    /**
     * 查询组盘规则
     * 
     * @param yqZpgz 组盘规则
     * @return 组盘规则
     */
    public YqZpgz selectYqZpgzByZpgzId(YqZpgz yqZpgz);

    /**
     * 查询组盘规则，根据盘规格ID
     *
     * @param yqZpgz 组盘规则
     * @return 组盘规则
     */
    public YqZpgz selectYqZpgzByPggId(YqZpgz yqZpgz);

    /**
     * 查询组盘规则，根据盘规格ID
     *
     * @param yqZpgz 组盘规则
     * @return 组盘规则
     */
    public int selectYqZpgzNumByPggId(YqZpgz yqZpgz);

    /**
     * 查询组盘规则列表
     * 
     * @param yqZpgz 组盘规则
     * @return 组盘规则集合
     */
    public List<YqZpgz> selectYqZpgzList(YqZpgz yqZpgz);

    /**
     * 新增组盘规则
     * 
     * @param yqZpgz 组盘规则
     * @return 结果
     */
    public int insertYqZpgz(YqZpgz yqZpgz);

    /**
     * 修改组盘规则
     * 
     * @param yqZpgz 组盘规则
     * @return 结果
     */
    public int updateYqZpgz(YqZpgz yqZpgz);

    /**
     * 删除组盘规则
     * 
     * @param yqZpgz 组盘规则
     * @return 结果
     */
    public int deleteYqZpgzByZpgzId(YqZpgz yqZpgz);

    /**
     * 批量删除组盘规则
     * 
     * @param zpgzIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteYqZpgzByZpgzIds(Long[] zpgzIds);

    /**
     * 查询门类分表
     *
     * @param categoryTable 门类表
     * @return 门类分表的信息
     */
    public List<Map<String,String>> selectCategory(@Param("categoryTable") String categoryTable, @Param("categoryId")Long categoryId);

    /**
     * 查询符合组盘规则的ID
     *
     * @param DA_TABLE 门类表
     * @return 查询符合组盘规则的ID
     */
//    public List<Map<String,String>> selectDa(@Param("DA_TABLE") String DA_TABLE, YqZpgz yqZpgz);
    List<Map<String, String>> selectDa(@Param("DA_TABLE") String DA_TABLE, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("bgqx") String bgqx, @Param("mj") String mj);


    /**
     * 查询卷内件的ID
     *
     * @param FOLDER 项目、卷、件关联表
     * @return 查询卷内件的ID
     */
    public List<Map<String,String>> selectFolder(@Param("FOLDER") String FOLDER, @Param("DA_TABLE") String DA_TABLE, @Param("FOLDER_ID")Long[] FOLDER_ID);

    /**
     * 查询项目内的件ID
     *
     * @param FOLDER 项目、卷、件关联表
     * @return 查询项目内的件ID
     */
    public List<Map<String,String>> selectFolderXm(@Param("FOLDER") String FOLDER, @Param("DA_TABLE") String DA_TABLE, @Param("FOLDER_ID")Long[] ITEM_ID);


    /**
     * 查询电子文件分表内的信息
     *
     * @param EFILE_TABLE_NAME 门类表
     * @return 查询电子文件分表内的信息
     */
    public List<Map<String,String>> selectEfile(@Param("EFILE_TABLE_NAME") String EFILE_TABLE_NAME, @Param("DA_ID")Long[] DA_ID);

    /**
     * 查询电子文件分表内的信息（卷）
     *
     * @param EFILE_TABLE_NAME 门类表
     * @return 查询电子文件分表内的信息
     */
    public List<Map<String,String>> selectEfileByJuan(@Param("FOLDER") String FOLDER, @Param("EFILE_TABLE_NAME") String EFILE_TABLE_NAME, @Param("CON_TABLE_ID")Long[] CON_TABLE_ID , @Param("DA_ID")Long[] DA_ID);

}
